package com.cleaningcloud.cld.service;

import com.cleaningcloud.cld.domain.CldCalendar;
import com.cleaningcloud.cld.domain.CldProjectSet;
import com.cleaningcloud.cld.domain.vo.CldAttendanceVo;
import com.cleaningcloud.cld.domain.vo.CldProjectPostSetVo;

public interface ICldTaskService {


    /**
     * @Author Shaw
     * @Description 项目合同到期
     * @date: 2025-06-18 14:01
     * @param: //TODO
     */
    void projectExpirationTask();

    /**
     * @Author Shaw
     * @Description 工服扣款
     * @Description 保险扣款
     * @date: 2025-06-18 14:01
     * @param: //TODO
     */
    void monthlyUniformDeductionsTask();

    /**
     * @Author Shaw
     * @Description 招聘薪酬
     * @date: 2025-06-18 14:01
     * @param: //TODO
     */
    void recruitmentExpensesSalaryCalculation();

    /**
     * @Author Shaw
     * @Description 初始化当日考勤记录
     * @date: 2025-06-18 14:01
     * @param: //TODO
     */
    void initializeAttendanceTask();

    /**
     * @Author Shaw
     * @Description 组装考勤数据
     * @date: 2025-06-18 14:10
     * @param: //TODO
     */
    CldAttendanceVo assemblyAttendance(Long projectId, CldProjectPostSetVo cldProjectPost, CldProjectSet projectSet, CldCalendar calendar);

    /**
     * @Author Shaw
     * @Description 招聘计划计算
     * @date: 2025-06-18 14:02
     * @param: //TODO
     */
    void recruitmentPlanTask();


    /**
     * @Author Shaw
     * @Description 工作计划生成
     * @date: 2025-06-18 14:02
     * @param: //TODO
     */
    void workPlanTask();

    /**
     * @Author Shaw
     * @Description 工作计划自动确认
     * @date: 2025-06-18 14:02
     * @param: //TODO
     */
    void automaticConfirmTask();

    /**
     * @Author Shaw
     * @Description 绩效考核
     * @date: 2025-06-18 14:02
     * @param: //TODO
     */
    void performanceAppraisalTask();

    /**
     * @Author Shaw
     * @Description 客户评价
     * @date: 2025-06-18 14:02
     * @param: //TODO
     */
    void customerEvaluateTask();
}
